

В некоторых службах каталогов для распознавания и тиражирования изменений используются метки времени. При работе с такими системами очень важно, чтобы часы на всех серверах каталогов были синхронизованы друг с другом, но соблюсти это условие в сети зачастую оказывается довольно сложно. Однако даже при хорошей синхронизации часов остается вероятность того, что часы на одном из серверов могут быть установлены неверно, поэтому обновления информации на этом сервере не произойдет.
Windows 2000 поддерживает распределенную синхронизацию времени, однако система репликации Active Directory не использует меток времени при передаче изменений. Вместо них в репликационной модели Active Directory используются порядковые номера изменений (Update Sequence Numbers, USNs). USN-номер представляет собой 64-разрядное число, хранящееся на каждом сервере Active Directory. Когда сервер вносит изменение в Active Directory, этот номер увеличивается на единицу и сохраняется вместе с записанным изменением. Эти операции неразделимы: увеличение USN-номера на единицу и сохранение его нового значения, а также внесение изменения в данные представляют собой единую рабочую процедуру.
Каждый сервер Active Directory поддерживает также таблицу USN-номеров, которые он получает от других серверов в результате тиражирования. Наибольшее значение номера, полученного от каждого сервера, сохраняется в этой таблице. Когда какой-либо сервер сообщает серверу каталогов (Directory Server) о необходимости репликации данных, сервер запрашивает все изменения, номера которых превышают самый большой USN-номер в его таблице. Эта простая модель не зависит от точности присвоения временных меток.
Поскольку обновление USN-номера, хранящегося в таблице сервера, неразрывно связано с обновлением данных, восстановление информации при сбое системы не представляет больших трудностей. При повторной репликации сервер запрашивает другие серверы обо всех изменениях с USN-номерами, превышающими наибольший сохранившийся номер в его таблице. Так как обновление таблицы и обновление данных составляет одну рабочую операцию, то прерванная репликация будет возобновлена точно с того места, на котором произошел сбой.

